﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entidades;
using System.Drawing;
using DAO;

public partial class abmProfesor : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

            llenarGrilla();
            lblError.Text = "";
      
    }

    protected void llenarGrilla()
    {
        try
        {
            dgvProfesores.DataSource = ProfesorDAO.obtenerProfesores(txtApellidoProfesor.Text);
            dgvProfesores.DataKeyNames = new string[] { "Id" };
            dgvProfesores.DataBind();
        }
           
        catch (SystemException ex)
        {
            lblError.Text += ex.Message.ToString();
        }
    }

    protected void btnAgregar_Click(object sender, EventArgs e)
    {
        lblUsuario.Text = txtNombre.Text.Trim().ToUpper() + "." + txtApellido.Text.Trim().ToUpper();
        lblRol.Text = "PROFESOR";
        pnlUsuario.Visible = true;
        pnlAlta.Visible = false;       
    }

    protected void btnConsultar_Click(object sender, EventArgs e)
    {
        try{
                llenarGrilla();
                txtApellidoProfesor.Text = "";
        }catch (SystemException ex){ lblError.Text += ex.Message.ToString(); }
    }    

    protected void btnEliminar_Command(object sender, CommandEventArgs e)
    {
        int index = Convert.ToInt32(e.CommandArgument);
        int idProfesor = int.Parse(dgvProfesores.DataKeys[index].Value.ToString());
        try
        {
            if (e.CommandName == "Modificar")
            {
                pnlAlta.Visible = true;
                pnlListado.Visible = false;
                Profesor pro = ProfesorDAO.obtenerProfesorId(idProfesor);
                txtId.Value = pro.Id.ToString();
                txtNombre.Text = pro.Nombre;
                txtApellido.Text = pro.Apellido;
                btnAgregar.Visible = false;
            }
            if (e.CommandName == "Eliminar")
            {
                ProfesorDAO.bajaProfesor(idProfesor);
                llenarGrilla();

            }
        }
        catch (SystemException ex)
        {
            lblError.Text += ex.Message.ToString();
        }
    }



    protected void btnModificar_Click(object sender, EventArgs e)
    {
        try{
            Profesor profesor = new Profesor();
            profesor.Id = int.Parse(txtId.Value);
            profesor.Nombre = txtNombre.Text;
            profesor.Apellido = txtApellido.Text;
            ProfesorDAO.modificarProfesor(profesor);
            pnlAlta.Visible = false;
            pnlListado.Visible = true;
            lblError.ForeColor = Color.Green;
            lblError.Text = "Profesor modificado correctamente";
            llenarGrilla();
            txtId.Value = "";
            txtApellido.Text = "";
            txtNombre.Text = "";

        } catch (SystemException ex){ lblError.Text += ex.Message.ToString();}        
    }

       protected void btnNuevoProfesor_Click(object sender, EventArgs e)
    {
        pnlAlta.Visible = true;
        pnlListado.Visible = false;
        btnAgregar.Visible = true;
        btnModificar.Visible = false;

    }
    protected void dgvProfesores_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        dgvProfesores.PageIndex = e.NewPageIndex;
        dgvProfesores.DataBind();
    }
    protected void btnAceptar_Click(object sender, EventArgs e)
    {
        try{
            if (txtClave.Text != txtRepetirClave.Text)
            {
                lblMje.Text = "Claves no coincidentes";
                txtClave.Text = "";
                txtRepetirClave.Text = "";
                return;
            }
            Profesor profesor = new Profesor();
            profesor.Nombre = txtNombre.Text;
            profesor.Apellido = txtApellido.Text;

            Usuario usu = new Usuario();
            usu.Nombre = lblUsuario.Text;
            usu.Clave = txtClave.Text;
            usu.Rol = "P";

            if (ProfesorDAO.agregarProfesor(profesor, usu) != 0)
            {
                pnlAlta.Visible = false;
                pnlListado.Visible = true;
                pnlUsuario.Visible = false;
                lblError.ForeColor = Color.Green;
                lblError.Text = "Profesor insertado correctamente";
                llenarGrilla();
                txtNombre.Text = "";
                txtApellido.Text = "";
            }
            else
                lblError.Text = "No se puedo agregar el Profesor";
            
        }catch (SystemException ex) {lblError.Text += ex.Message.ToString();}

    }
}